#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void CountSort(int* a, int n);

void MergeSortNonR(int* a, int n);

//打印数组
void PrintArray(int* a, int n);
//
////交换函数
//void Swap(int* p1, int* p2);

//插入排序
void InsertSort(int* a, int n);
//
////希尔排序
//void ShellSort(int* a, int n);
//
////堆排序
////void HeapSort(int* a, int n);
//
//冒泡排序
void BubbleSort(int* a, int n);

//数据交换
void Swap(int* p1, int* p2);
////直接选择排序
//void SelectSort(int* a, int n);
//
//快速排序（hoare版）
void QuickSort(int* a, int left, int right);

void QuickSortNonR(int* a, int left, int right);

// 前后指针
int PartSort2(int* a, int left, int right);

//三数取中优化函数
int GetMidi(int* a, int left, int right);	//传入数组的地址和指向头尾的两个指针